eef2922a88d30906e03a5219100535dccf80dc9a,core/src/main/java/io/atomix/AtomixReplica.java,AtomixReplica,shutdown,#,518

Before Change


   * @return A completable future to be completed once the server has been shutdown.
   */
  public CompletableFuture<Void> shutdown() {
    return clusterManager.stop(server.server().cluster(), this)
      .thenCompose(v -> client.close())
      .thenCompose(v -> server.shutdown());
  }

  /**

After Change


  public CompletableFuture<Void> shutdown() {
    CompletableFuture<Void> future = new CompletableFuture<>();
    clusterManager.stop(server.server().cluster(), this)
      .whenComplete((managerResult, managerError) -> {
        client.close().whenComplete((clientResult, clientError) -> {
          server.shutdown().whenComplete((serverResult, serverError) -> {
            if (managerError != null) {
              future.completeExceptionally(managerError);
            } else if (clientError != null) {
              future.completeExceptionally(clientError);
            } else if (serverError != null) {
              future.completeExceptionally(serverError);
            } else {
              future.complete(null);
            }
          });
        });
      });
    return future;
  }